<?php
	session_start();

	require_once('../classes/log.php');
	require_once('../classes/database.php');
	require_once('../includes/fonctions.php');

	include('./calcul_age.php');
	$idconnect=Database::getInstance();
	$message='';
	$lecture=0;
	if(!empty($_SESSION['membre_id'])){
	$querytest = pg_query($idconnect,"SELECT * FROM droit_utilisateur,droit WHERE  droit_utilisateur.id_droit= droit.id_droit  and droit.type='visualisation' and droit_utilisateur.id_user=".$_SESSION['membre_id']);
	$lecture = pg_num_rows($querytest);}
	function key_compare_func($key1, $key2){
		//comparaison de deux valeurs
		if ($key1 == $key2)
			return 0;
		else if ($key1 > $key2)
			return 1;
		else
			return -1;
	}

	function rechercheCombi($combi,$temp){
		$liste2=array();
		if($combi=="un"){
			// cela signifie qu'on va sélectionner les animaux qui ont au moins un des tests sélectionnés
			foreach($temp as $cle2=>$val){//pour chaque champs
				foreach ($val as $key2=>$value2){ //pour chaque id_animal
					//si l'id_animal n'est pas dans la liste, on le met
					if(!in_array($key2,$liste2)){$liste2[$key2]=$value2;}
				}
			}
		}
		else if($combi=="deux"){
			//cela signifie qu'on ne va sélectionner que les animaux qui ont subit tous les tests sélectionnés
			$tab=array();
			foreach($temp as $cle=>$val){$tab=$val;}
			//intersection de toutes les requetes
			foreach($temp as $cle=>$val){ $tab=array_intersect_key($val,$tab);}
			$liste2=$tab;
		}
		return $liste2;
	}

	function rechercheCheck($val1,$requete,$tab,$idconnect,$combi,$liste){
		//pour chaque case, récupération des animaux
		$temp=array();
		$liste2=array();

		foreach($tab as $key){
			$temp2=array();
			$rq=$requete;

			if($val1=="gene"){$rq.=" AND nom_gene='$key'";}
			else if($val1=="induction"){$rq.=" AND produit_injecte='$key'";}
			else if($val1=="test_bio"){$rq.=" AND unite_mesure='$key'";}
			else if($val1=="comp"){$rq.=" AND type_test.description='$key'";}

			$query = pg_query($idconnect,$rq);
			while($back=pg_fetch_assoc($query)){
				if(sizeof($tab)>1){ //si plusieurs tests sélectionnés
					if($back['code_animal']){$temp2[$back['id_animal']]=$back['code_animal'];}
					else if($back['code_autre_animalerie']){$temp2[$back['id_animal']]=$back['code_autre_animalerie'];}
					$temp[$key]=$temp2;
				}
				else{ //un seul test sélectionné
					if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
					else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
				}
			}
		}
		//si plusieurs champs sélectionnés, on va regarder la combinaison des requêtes choisie par l'utilisateur
		if(sizeof($tab)>1 && $combi!="none"){
			$liste2 = rechercheCombi($combi,$temp);
		}

		if(sizeof($liste)==0){$liste=$liste2;}
		else{$liste=array_intersect_key($liste,$liste2);}
		return $liste;
	}

	function rechercheSNPMut($val1,$post,$nb,$liste,$idconnect,$requete){
		$liste2=array();
		if($val1=="snp"){
			if($nb>1){
				foreach($post as $cle=>$value){
					if($cle=="select_combi_snp"){$combi=$value;}
				}
			}
		}
		else if($val1=="mut"){
			if($nb>1){
				foreach($post as $cle=>$value){
					if($cle=="select_combi_mut"){$combi=$value;}
				}
			}
		}

		if($nb!=""){//si l'utilisateur a appuyé sur "ajouter"
			$temp = array();
			for($i=1;$i<=$nb;$i++){
				if($val1=="snp"){
					$choix="";
					foreach($post as $cle=>$val){ //récupération des valeurs des select
						if($cle=="select_liste_snp$i"){$choix=$val;}
					}
					if($choix!=""){
						$rq=$requete;
						$rq.=" AND snp.localisation='$choix'";
					}
				}
				else if($val1=="mut"){
					$type="";
					$choix="";
					foreach($post as $cle=>$val){ //récupération des valeurs des select
						if($cle=="select_type_mut$i"){$type=$val;}
						else if($cle=="select_liste_mut$i"){$choix=$val;}
					}
					if($type!="" && $choix!=""){ //si les valeurs des select ne sont pas nulles, on ajoute une close à la requete
						$rq = $requete;
						if($type=="type_mutation"){$rq.=" AND mutation.type_mutation='$choix'";}
						else if($type=="localisation"){$rq.=" AND mutation.localisation='$choix'";}
					}
				}
				//exécution de la requête
				$query = pg_query($idconnect,$rq);
				$temp2 = array();
				while($back = pg_fetch_assoc($query)){
					if($nb>1){ //si plusieurs champs
						if($back['code_animal']){$temp2[$back['id_animal']]=$back['code_animal'];}
						else if($back['code_autre_animalerie']){$temp2[$back['id_animal']]=$back['code_autre_animalerie'];}
						$temp[$i]=$temp2;
					}
					else{ //si un seul champ
						if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
						else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
					}
				}
			}
			//si plusieurs champs mutation, on va regarder la combinaison des requêtes choisie par l'utilisateur
			if($nb>1 && isset($combi) && $combi!="none"){
				$liste2 = rechercheCombi($combi,$temp);
			}
			if($val1=="snp"){echo "Recherche des SNP effectuée avec succès<br/>";}
			else if($val1=="mut"){echo "Recherche des mutations effectuée avec succès<br/>";}
		}
		else{ //si l'utilisateur n'a pas appuyé sur le bouton "ajouter", on exécute quand même la requête
		//	=> récupération de toutes les mutations/snp existantes
			$query = pg_query($idconnect,$requete);
			while($back = pg_fetch_assoc($query)){
				if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
				else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
			}
			if($val1=="snp"){echo "Vous n'avez pas sélectionné de SNP particulier, tous les animaux possédant au moins un SNP ont donc été sélectionnés<br/>";}
			else if($val1=="mut"){echo "Vous n'avez pas sélectionné de mutation particulière, tous les animaux possédant au moins une mutation ont donc été sélectionnés<br/>";}
		}
		if(sizeof($liste)==0){$liste=$liste2;}
		else{$liste=array_intersect_key($liste,$liste2);}

		return $liste;
	}
	if(isset($_POST['id']) && $_POST['id']!="" && isset($_POST['code']) && $_POST['code']!=""){
		
		if($lecture != 0){
		/**********************  submit animal sélectionné *******************/
			$_SESSION['id_anim'] = $_POST['id'];
			$_SESSION['code'] = $_POST['code'];
			echo $_SESSION['id_anim']." ".$_SESSION['code'];
			header ('Location: ./recherche_animal.php');
		}
	}

?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="../style.css" />
         <!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <!--[if lte IE 7]>
        <link rel="stylesheet" href="../../style_ie.css" />
        <![endif]-->
        <title>Base de données Microcèbes</title>

        <script >
		function fsubmit(value_id,value_code){
			document.getElementById("id").value = value_id;
			document.getElementById("code").value = value_code;
			document.forms['form1'].submit();
		}
		</script>
    </head>

    <body>
		<?php include(dirname(dirname(__FILE__))."/menu.php"); ?>

		<section id="main">
			<header>
				<h1>Recherche de données</h1>
			</header>
				<article>
					<p>
					<?php
						if(isset($_POST) && isset($_POST['choix'])){
							$liste = array(); # id_animal=>code_animal ou id_animal=>code_autre_animalerie si renseigné
							foreach($_POST['choix'] as $chkbx){
								/* ****** case age cochée ***** */
								if($chkbx=="age"){
									if($_POST['signe_age']!="none" && isset($_POST['input_age']) && $_POST['type_age']!="none"){
										$requete = pg_query($idconnect,"SELECT DISTINCT(id_animal), code_animal, code_autre_animalerie,date_naissance,date_deces FROM Animal");
										while($back = pg_fetch_assoc($requete)){
											$age='';
											$cycle='';
											# si on a la date de naissance et la date de décès de l'animal
											if($back['date_naissance'] && $back['date_deces']){
												$age = calcul_age($back['date_naissance'],$back['date_deces']);
												$cycle=$age/8;
											}
											#si on a que la date de naissance
											else if($back['date_naissance'] && !$back['date_deces']){
												$today = date("Y-m-d");
												$age = calcul_age($back['date_naissance'],$today);
												$cycle=$age/8;
											}
											#si l'age a été calculé
											if($age!=''){
												if($_POST['type_age']=="mois"){
													if($_POST['signe_age']=="inférieur" ){if($age<$_POST['input_age']){
														if($back['code_animal']){$liste[$back['id_animal']]=$back['code_animal'];}
														else if($back['code_autre_animalerie']){$liste[$back['id_animal']]=$back['code_autre_animalerie'];}
													}}
													else if($_POST['signe_age']=="supérieur" ){if($age>$_POST['input_age']){
														if($back['code_animal']){$liste[$back['id_animal']]=$back['code_animal'];}
														else if($back['code_autre_animalerie']){$liste[$back['id_animal']]=$back['code_autre_animalerie'];}
													}}
													else if($_POST['signe_age']=="égal" ){if($age==$_POST['input_age']){
														if($back['code_animal']){$liste[$back['id_animal']]=$back['code_animal'];}
														else if($back['code_autre_animalerie']){$liste[$back['id_animal']]=$back['code_autre_animalerie'];}
													}}
													else{ echo "Pas d'animaux dont l'âge est ".$_POST['signe_age']." à ".$POST['input_age']." mois<br/>";}
												}
												else if($_POST['type_age']=="cycle"){
													if($_POST['signe_age']=="inférieur" ){if($cycle<$_POST['input_age']){
														if($back['code_animal']){$liste[$back['id_animal']]=$back['code_animal'];}
														else if($back['code_autre_animalerie']){$liste[$back['id_animal']]=$back['code_autre_animalerie'];}
													}}
													else if($_POST['signe_age']=="supérieur" ){if($cycle>$_POST['input_age']){
														if($back['code_animal']){$liste[$back['id_animal']]=$back['code_animal'];}
														else if($back['code_autre_animalerie']){$liste[$back['id_animal']]=$back['code_autre_animalerie'];}
													}}
													else if($_POST['signe_age']=="égal" ){if($cycle==$_POST['input_age']){
														if($back['code_animal']){$liste[$back['id_animal']]=$back['code_animal'];}
														else if($back['code_autre_animalerie']){$liste[$back['id_animal']]=$back['code_autre_animalerie'];}
													}}
													else{ echo "Pas d'animaux dont l'âge est ".$_POST['signe_age']." à ".$POST['input_age']." cycle<br/>";}
												}
											}
										}
										echo "Recherche d'animaux ayant un âge ".$_POST['signe_age']." à " .$_POST['input_age'].
										" ".$_POST['type_age']." effectuée avec succès <br/>";
									}
									else{ echo "Champs de l'age non remplis, non prise en compte de l'âge dans la recherche<br/>";}
								}
								else if($chkbx=="irm"){
									$liste2=array();
									if(!empty($_POST['select_irm']) && $_POST['select_irm']!="tout" && $_POST['select_irm']!="none"){
										/*$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie FROM Animal,
										resultat_test,irm,test,type_test WHERE resultat_test.id_res=irm.id_res AND in_vivo='".$_POST['select_irm']."'
										AND animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test AND
										test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%IRM%'";*/
										
										$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie FROM Animal,
										resultat_test,irm,test,type_test WHERE resultat_test.id_res=irm.id_res AND in_vivo='on'
										AND animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test AND
										test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%IRM%'";
										if($_POST['select_irm']=="true"){$vivo="in vivo";}
										else{$vivo="ex vivo";}
										echo "Recherche d'irm $vivo effectuée avec succès<br/>";
									}
									else{
										$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
										FROM Animal,resultat_test,test,type_test
										WHERE animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test AND
										test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%IRM%'";
										if(!empty($_POST['select_irm']) && $_POST['select_irm']=="none"){echo "Vous n'avez pas choisi de type d'IRM, tous les animaux ayant eu au moins une IRM ont été sélectionnés<br/>";}
										echo "Recherche d'irm effectuée avec succès<br/>";
									}
									$query = pg_query($idconnect,$requete);
									while($back=pg_fetch_assoc($query)){
										if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
										else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
									}
									if(sizeof($liste)==0){$liste=$liste2;}
									else{$liste=array_intersect_key($liste,$liste2);}
								}

								else if($chkbx=="Séquençage ARN"){
									$liste2=array();
									$requete = pg_query($idconnect,"SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
									FROM Animal,type_test,test,resultat_test
									WHERE animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test
									AND test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%Séquençage ARN%'");
									while($back=pg_fetch_assoc($requete)){
										if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
										else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
									}
									echo "Recherche du séquençage d'ARN effectuée avec succès<br/>";
									if(sizeof($liste)==0){$liste=$liste2;}
									else{$liste=array_intersect_key($liste,$liste2);}
								}

								else if($chkbx=="Transcriptome"){
									$liste2=array();
									$requete = pg_query($idconnect,"SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
									FROM Animal,type_test,test,resultat_test
									WHERE animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test AND
									test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%Transcriptome%'");
									while($back=pg_fetch_assoc($requete)){
										if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
										else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
									}
									echo "Recherche d'analyse transcriptomique effectuée avec succès<br/>";
									if(sizeof($liste)==0){$liste=$liste2;}
									else{$liste=array_intersect_key($liste,$liste2);}
								}

								else if($chkbx=="sequencage_adn"){
									$liste2=array();
									$requete = pg_query($idconnect,"SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
									FROM Animal,type_test,test,resultat_test,sequencage_ADN
									WHERE sequencage_ADN.id_res=resultat_test.id_res AND animal.id_animal=resultat_test.id_animal
									AND test.id_test=resultat_test.id_test AND test.id_type_test=type_test.id_type_test
									AND type_test.label LIKE '%Séquencage%' AND sequencage_ADN.entier='True'");
									while($back=pg_fetch_assoc($requete)){
										if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
										else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
									}
									echo "Recherche des animaux dont le génome a entièrement été séquencé effectuée avec succès<br/>";
									if(sizeof($liste)==0){$liste=$liste2;}
									else{$liste=array_intersect_key($liste,$liste2);}
								}

								else if($chkbx=="gene"){
									$liste2=array();
									$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
										FROM Animal,type_test,test,resultat_test,sequencage_ADN,gene
										WHERE sequencage_ADN.id_res=resultat_test.id_res AND sequencage_ADN.id_res=gene.id_res
										AND animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test
										AND test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%Séquencage%'";
									if(isset($_POST['choix_gene'])){
										$tab=array();
										//si l'utilisateur veut sélectionner tous les genes
										if(in_array("tous",$_POST['choix_gene'])){
											//recherche des animaux
											$sql = pg_query($idconnect,$requete);
											while($back=pg_fetch_assoc($sql)){
												if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
												else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
											}
											if(sizeof($liste)==0){$liste=$liste2;}
											else{$liste=array_intersect_key($liste,$liste2);}
											echo "Recherche des animaux ayant été séquencés effectué avec succès<br/>";
										}
										//récupération des genes sélectionnés
										else{
											echo "Recherche des animaux dont les gènes ";
											foreach($_POST['choix_gene'] as $key){
												echo "$key, ";
												array_push($tab,$key);
											}
											echo "ont été séquencés effectuée avec succès<br/>";
											$combi="";
											if(sizeof($tab)>1){$combi=$_POST['combi_gene'];}
											$liste = rechercheCheck("gene",$requete,$tab,$idconnect,$combi,$liste);
										}
									}
									else{ //si aucune case n'a été cochée
										echo "Vous n'avez sélectionné aucun gène, tous les animaux ayant été séquencés ont donc été recherchés<br/>";
										$sql = pg_query($idconnect,$requete);
										while($back=pg_fetch_assoc($sql)){
											if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
											else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
										}
										echo "Recherche des animaux ayant été séquencés effectué avec succès<br/>";
										if(sizeof($liste)==0){$liste=$liste2;}
										else{$liste=array_intersect_key($liste,$liste2);}
									}
								}

								else if($chkbx=="mutation"){
									$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
										FROM Animal,type_test,test,resultat_test,sequencage_ADN,gene,mutation
										WHERE sequencage_ADN.id_res=resultat_test.id_res
										AND sequencage_ADN.id_res=gene.id_res AND animal.id_animal=resultat_test.id_animal
										AND test.id_test=resultat_test.id_test AND test.id_type_test=type_test.id_type_test
										AND type_test.label LIKE '%Séquencage%' AND mutation.id_res=gene.id_res";

									$liste = rechercheSNPMut("mut",$_POST,$_POST['mut_nb'],$liste,$idconnect,$requete);
								}

								else if($chkbx=="snp"){
									$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
										FROM Animal,type_test,test,resultat_test,sequencage_ADN,gene,snp
										WHERE sequencage_ADN.id_res=resultat_test.id_res
										AND sequencage_ADN.id_res=gene.id_res AND animal.id_animal=resultat_test.id_animal
										AND test.id_test=resultat_test.id_test AND test.id_type_test=type_test.id_type_test
										AND type_test.label LIKE '%Séquencage%' AND snp.id_res=gene.id_res";

									$liste = rechercheSNPMut("snp",$_POST,$_POST['snp_nb'],$liste,$idconnect,$requete);
								}

								else if($chkbx=="test_induction"){
									$liste2=array();
									if(isset($_POST['choix_test_induction'])){
										$tab=array();
										$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
										FROM Animal,type_test,test,resultat_test,test_induction
										WHERE test_induction.id_res=resultat_test.id_res
										AND animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test
										AND test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%Test induction%'";

										//si l'utilisateur veut sélectionner tous les tests
										if(in_array("tous",$_POST['choix_test_induction'])){
											//recherche des animaux
											$sql = pg_query($idconnect,$requete);
											while($back=pg_fetch_assoc($sql)){
												if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
												else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
											}
											echo "Recherche de tous les animaux ayant subi au moins un test d'induction effectuée avec succès<br/>";
											if(sizeof($liste)==0){$liste=$liste2;}
											else{$liste=array_intersect_key($liste,$liste2);}
										}
										//récupération des tests sélectionnés
										else{
											echo "Recherche de tous les animaux ayant subi les tests d'induction ";
											foreach($_POST['choix_test_induction'] as $key){
												echo "$key, ";
												array_push($tab,$key);
											}
											echo "effectuée avec succès<br/>";
											$combi="";
											if(sizeof($tab)>1){$combi=$_POST['combi_test_induction'];}
											$liste = rechercheCheck("induction",$requete,$tab,$idconnect,$combi,$liste);
										}
									}
									else{
										echo "Vous n'avez sélectionné aucun test d'induction, tous les animaux ayant subi au moins un test
										d'induction ont donc été recherchés<br/>";
										$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
										FROM Animal,type_test,test,resultat_test
										WHERE animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test
										AND test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%Test induction%'";
										$sql = pg_query($idconnect,$requete);
										while($back=pg_fetch_assoc($sql)){
											if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
											else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
										}
										if(sizeof($liste)==0){$liste=$liste2;}
										else{$liste=array_intersect_key($liste,$liste2);}
									}
								}

								else if($chkbx=="test_biologique"){
									$liste2=array();
									$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
										FROM Animal,type_test,test,resultat_test
										WHERE animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test
										AND test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%Test biologique%'";
									if(isset($_POST['choix_test_biologique'])){
										$tab=array();
										//si l'utilisateur veut sélectionner tous les tests biologiques
										if(in_array("tous",$_POST['choix_test_biologique'])){
											//recherche des animaux
											$sql = pg_query($idconnect,$requete);
											while($back=pg_fetch_assoc($sql)){
												if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
												else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
											}
											echo "Recherche de tous les animaux ayant subi au moins un test d'induction effectuée avec succès<br/>";
											if(sizeof($liste)==0){$liste=$liste2;}
											if(sizeof($liste)==0){$liste=$liste2;}
											else{$liste=array_intersect_key($liste,$liste2);}
										}
										//récupération des tests sélectionnés
										else{
											echo "Recherche de tous les animaux ayant subi les tests biologiques ";
											foreach($_POST['choix_test_biologique'] as $key){
												echo "$key, ";
												array_push($tab,$key);
											}
											echo "effectuée avec succès<br/>";
											$combi="";
											if(sizeof($tab)>1){$combi=$_POST['combi_test_biologique'];}
											$liste = rechercheCheck("test_bio",$requete,$tab,$idconnect,$combi,$liste);
										}
									}
									else{
										echo "Vous n'avez sélectionné aucun test biologique, tous les animaux ayant subi au moins un test
										biologique ont donc été recherchés<br/>";
										$sql = pg_query($idconnect,$requete);
										while($back=pg_fetch_assoc($sql)){
											if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
											else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
										}
										if(sizeof($liste)==0){$liste=$liste2;}
										else{$liste=array_intersect_key($liste,$liste2);}
									}
								}

								else if($chkbx=="ADN (PS)"){
									$liste2=array();
									$requete = pg_query($idconnect,"SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
									FROM Animal,biobanque
									WHERE biobanque.type_tissu='ADN (PS)' AND biobanque.id_animal=animal.id_animal");
									while($back=pg_fetch_assoc($requete)){
										if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
										else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
									}
									echo "Recherche de tous les animaux ayant eu une prise de sang effectuée avec succès<br/>";
									if(sizeof($liste)==0){$liste=$liste2;}
									else{$liste=array_intersect_key($liste,$liste2);}
								}

								else if($chkbx=="biobanque"){
									$liste2=array();
									$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie,code_histologique
									FROM Animal,biobanque WHERE biobanque.id_animal=animal.id_animal";
/*
									$requete="SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie,code_histologique
									FROM Animal,biobanque WHERE biobanque.id_animal=animal.id_animal AND groupe_organe='Cellule'
									AND type_tissu='Cellules Muscle P2'";
*/
									if(isset($_POST['ListeGroupe']) && $_POST['ListeGroupe']!="none"){
										if($_POST['ListeGroupe']!="tous"){$requete.=" AND groupe_organe='".addslashes($_POST['ListeGroupe'])."'";}

										if(isset($_POST['ListeTissu']) && $_POST['ListeTissu']!="none"){
											if($_POST['ListeTissu']!="tous"){$requete.=" AND type_tissu='".addslashes($_POST['ListeTissu'])."'";}

											if(isset($_POST['ListeBoite']) && $_POST['ListeBoite']!="none"){
												if($_POST['ListeBoite']!="tous"){$requete.=" AND nom_boite='".$_POST['ListeBoite']."'";}
											}
											else{echo "Vous n'avez sélectionné aucune boite, la recherche a donc été faite sur tous les animaux
											ayant au moins un tissu dans la biobanque correspondant au groupe ".$_POST['ListeGroupe']." et au tissu ".$_POST['ListeTissu']."<br/>";}
										}
										else{echo "Vous n'avez sélectionné aucun tissu, la recherche a donc été faite sur tous les animaux
										ayant au moins un tissu dans la biobanque correspondant au groupe".$_POST['ListeGroupe']."<br/>";}
									}
									else{echo "Vous n'avez sélectionné aucun groupe, la recherche a donc été faite sur tous les animaux
										ayant au moins un tissu dans la biobanque<br/>";}

									$query = pg_query($idconnect,$requete);
									while($back = pg_fetch_assoc($query)){
										if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
										else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
										else if($back['code_histologique']){$liste2[$back['id_animal']]=$back['code_histologique'];}
									}
									if(sizeof($liste)==0){$liste=$liste2;}
									else{$liste=array_intersect_key($liste,$liste2);}
								}

								else if($chkbx=="plaques"){
									$liste2 = array();
									$requete = pg_query($idconnect,"SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
									FROM Animal,type_test,test,resultat_test,test_immunologique
									WHERE animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test
									AND test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%Test immunologique%'
									AND test_immunologique.id_res=resultat_test.id_res AND code_anticorps='Aβ1-42 (FCA3542)' AND diagnostic='postitif'");

									while($back=pg_fetch_assoc($requete)){
										if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
										else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
									}
									echo "Recherche de plaques amyloïdes effectuée avec succès<br/>";
									if(sizeof($liste)==0){$liste=$liste2;}
									else{$liste=array_intersect_key($liste,$liste2);}
								}

								else if($chkbx=="Test_comportemental"){
									$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
										FROM Animal,type_test,test,resultat_test
										WHERE animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test
										AND test.id_type_test=type_test.id_type_test AND type_test.label LIKE '%Test comportemental%'";
									if(isset($_POST['choix_Test_comportemental'])){
										$tab=array();

										//si l'utilisateur veut sélectionner tous les genes
										if(in_array("tous",$_POST['choix_Test_comportemental'])){
											//récupération de la liste des gènes
											$sql = pg_query($idconnect,$requete);
											while($back=pg_fetch_assoc($sql)){
												if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
												else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
											}
											echo "Recherche de tous les animaux ayant subi au moins un test comportemental effectuée avec succès<br/>";
											if(sizeof($liste)==0){$liste=$liste2;}
											else{$liste=array_intersect_key($liste,$liste2);}
										}
										//récupération des tests sélectionnés
										else{
											echo "Recherche de tous les animaux ayant subi les tests comportementaux ";
											foreach($_POST['choix_Test_comportemental'] as $key){
												array_push($tab,$key);
												echo "$key, ";
											}
											echo "effectuée avec succès<br/>";
											$combi="";
											if(sizeof($tab)>1){$combi=$_POST['combi_Test_comportemental'];}
											$liste = rechercheCheck("comp",$requete,$tab,$idconnect,$combi,$liste);
										}
									}
									else{
										echo "Vous n'avez sélectionné aucun test comportemental, tous les animaux ayant subi au moins un test
										comportemental ont donc été recherchés<br/>";
										$sql = pg_query($idconnect,$requete);
										while($back=pg_fetch_assoc($sql)){
											if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
											else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
										}
										if(sizeof($liste)==0){$liste=$liste2;}
										else{$liste=array_intersect_key($liste,$liste2);}
									}
								}

								else if($chkbx="date"){
									$liste2=array();
									if(isset($_POST['choix_date']) && !empty($_POST['choix_date'])){
										$requete = "SELECT DISTINCT(animal.id_animal),code_animal,code_autre_animalerie
										FROM Animal,type_test,test,resultat_test
										WHERE animal.id_animal=resultat_test.id_animal AND test.id_test=resultat_test.id_test
										AND date_test='".$_POST['choix_date']."'";

										$sql = pg_query($idconnect,$requete);
										while($back=pg_fetch_assoc($sql)){
											if($back['code_animal']){$liste2[$back['id_animal']]=$back['code_animal'];}
											else if($back['code_autre_animalerie']){$liste2[$back['id_animal']]=$back['code_autre_animalerie'];}
										}
										echo "Recherche de la date de test ".$_POST['choix_date']." effectuée avec succès<br/>";
										if(sizeof($liste)==0){$liste=$liste2;}
										else{$liste=array_intersect_key($liste,$liste2);}
									}
								}
								else{echo $chkbx;}
							}
							echo "<br/>";
							if(sizeof($liste)==0){echo "Aucun animal trouvé";}
							else{
								if(sizeof($liste)==1){echo "1 animal trouvé</p>";}
								else{echo sizeof($liste)." animaux trouvés</p>";}
								asort($liste);

								if($lecture != 0){ //si utilisateur a au moins un droit de lecture
									echo "<form name=\"form1\" method=\"post\" action=\"requetes.php\">";
										echo "<input type=\"hidden\" id=\"id\" name=\"id\" value=\"\">";
										echo "<input type=\"hidden\" id=\"code\" name=\"code\" value=\"\">";
									echo "</form>";
									foreach($liste as $cle=>$value){
										echo "<a href=\"#\" onclick=\"fsubmit($cle,$value)\">Microcèbe $value</a><br/>";
									}
								}
							}
						}


					?>
				</article>
		</section>
	</body>
</html>